package com.cloudsea.yunhaistores.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cloudsea.yunhaistores.dto.SpuAddDTO;
import com.cloudsea.yunhaistores.dto.SpuUpdateDTO;
import com.cloudsea.yunhaistores.entity.Spus;
import com.cloudsea.yunhaistores.vo.SpuDetailVO;

public interface SpuService {
    /**
     * 新增一个完整的商品 (SPU及至少一个SKU)
     * @param dto 包含SPU和SKU信息的DTO
     * @return 创建好的SPU实体
     */
    Spus addSpu(SpuAddDTO dto);


    /**
     * 根据SPU ID查询商品详情，包含其下的所有SKU
     */
    SpuDetailVO getSpuDetailById(Long spuId);

    /**
     * 修改商品信息
     */
    void updateSpu(Long spuId, SpuUpdateDTO dto);

    /**
     * 分页查询商品列表
     */
    IPage<Spus> listSpusByPage(Long storeId, int pageNum, int pageSize, String keyword);

    /**
     * 删除一个商品 (SPU及其下所有SKU)
     */
    void deleteSpu(Long spuId);
}
